package com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptBatchconsume;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* 次卡批量验券
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzh/tuangou/receipt/batchconsume",
    businessId = 58,
    apiVersion = "10050",
    apiName = "tuangou_receipt_batchconsume",
    needAuth = true
)
public class TuangouReceiptBatchconsumeRequest implements MeituanRequest<TuangouReceiptBatchconsumeResponse> {
    /**
    * <p data-diff-id="ct-diff-id-1ef72ad5-b117-413b-8c28-593c03effabb"><span style="color: rgb(31, 45, 61)">请求ID，用于标识幂等性</span></p>
    */
    @NotBlank(message = "requestId不能为空")
    @SerializedName("requestId")
    private String requestId;
    /**
    * <p data-diff-id="ct-diff-id-d042ad71-5d93-4ee8-b346-63bc18e50038"><span style="color: rgb(31, 45, 61)">商家在三方系统登录的帐号，仅用于记录验券者的信息，不用于权限验证</span></p>
    */
    @NotBlank(message = "appShopAccount不能为空")
    @SerializedName("appShopAccount")
    private String appShopAccount;
    /**
    * <p data-diff-id="ct-diff-id-43b4be6d-5798-4415-9380-34aa9ac31075"><span style="color: rgb(31, 45, 61)">商家在三方系统登录的用户名，仅用于记录验券者的信息，不用于权限验证&nbsp;</span></p>
    */
    @NotBlank(message = "appShopAccountName不能为空")
    @SerializedName("appShopAccountName")
    private String appShopAccountName;
    /**
    * <p data-diff-id="ct-diff-id-c8f570e4-090d-4042-b949-3bdb19bc9f01"><span style="color: rgb(31, 45, 61)">券码信息列表</span></p>
    */
    @NotEmpty(message = "receiptCodeInfos不能为空")
    @SerializedName("receiptCodeInfos")
    private List<ReceiptCodeInfo> receiptCodeInfos;

    public String getRequestId() {
        return requestId;
    }
    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }
    public String getAppShopAccount() {
        return appShopAccount;
    }
    public void setAppShopAccount(String appShopAccount) {
        this.appShopAccount = appShopAccount;
    }
    public String getAppShopAccountName() {
        return appShopAccountName;
    }
    public void setAppShopAccountName(String appShopAccountName) {
        this.appShopAccountName = appShopAccountName;
    }
    public List<ReceiptCodeInfo> getReceiptCodeInfos() {
        return receiptCodeInfos;
    }
    public void setReceiptCodeInfos(List<ReceiptCodeInfo> receiptCodeInfos) {
        this.receiptCodeInfos = receiptCodeInfos;
    }


    @Override
    public MeituanResponse<TuangouReceiptBatchconsumeResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<TuangouReceiptBatchconsumeResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "TuangouReceiptBatchconsumeRequest{" + "requestId=" + requestId + "," + "appShopAccount=" + appShopAccount + "," + "appShopAccountName=" + appShopAccountName + "," + "receiptCodeInfos=" + receiptCodeInfos + "}";
    }
}
